package com.njbw.user.db;

/**
 * 数据归档接口
 *
 * 场景：数据归档：一张数据表中可能有 1000 万条数据，但是其中有 800 万条可能是过去的，5天前的，我们现在不需要了，
 * 把它们放到现在这张表里可能会影响我们的查询效率，我们可以把它归结到另外一张表里，即作为冷数据，不在这张表里查，速度效率都会提升
 *
 * 常见的数据归档：先查，然后插入到另外一张表，再把原有数据进行删除，事务的提交一定要手动提交，大事务可能会超时
 * 而且还要是可控的，可以控制它停止、归档，从 1 - 100 归档，从 300 - 400 归档，这些都要是动态配置的，可以调节的
 * 这些都是可控的方案
 */
public interface BackUpDataHandler {

    /**
     * 获取场景，数据归档可能有各种各样的场景，我们要把这些场景进行封装，扩展
     */
    BackUpDataSceneEnum getScene();

    /**
     * 数据归档
     */
    void backUpData();
}
